package Page;

import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import Navigation.NavigationController;

public class HelpPage {

    public static Scene getScene() {
        VBox helpPane = new VBox(10);
        helpPane.setPadding(new Insets(10));
        helpPane.setAlignment(Pos.TOP_CENTER);

        // 创建标题
        Label titleLabel = new Label("用户帮助");
        titleLabel.setStyle("-fx-font-size: 24px; -fx-font-weight: bold;");
        helpPane.getChildren().add(titleLabel);

        // 创建手册和索引部分
        Accordion manualAccordion = new Accordion();
        manualAccordion.getPanes().addAll(
                createManualSection("简介", getIntroduction()),
                createManualSection("使用说明", getUsageInstructions()),
                createManualSection("常见问题", getFAQ()),
                createManualSection("联系我们", getContactInfo())
        );

        // 使用 ScrollPane 包装 Accordion 以实现滚动
        ScrollPane scrollPane = new ScrollPane(manualAccordion);
        scrollPane.setFitToWidth(true);

        // 创建主布局并设置场景
        BorderPane root = new BorderPane();
        root.setCenter(scrollPane);

        VBox vboxRoot = new VBox();
        Button backButton = new Button("返回");
        backButton.setOnAction(event -> {
            NavigationController.back();
        });
        vboxRoot.getChildren().add(backButton);
        vboxRoot.getChildren().add(root);

        Scene scene = new Scene(vboxRoot, 600, 800);

        // 监听场景的宽度和高度属性，强制重新布局
        scene.widthProperty().addListener((obs, oldVal, newVal) -> {
            vboxRoot.requestLayout();
        });

        scene.heightProperty().addListener((obs, oldVal, newVal) -> {
            vboxRoot.requestLayout();
        });

        return scene;
    }

    private static TitledPane createManualSection(String title, String content) {
        TextArea contentTextArea = new TextArea();
        contentTextArea.setWrapText(true);
        contentTextArea.setEditable(false);
        contentTextArea.setText(content);
        contentTextArea.setPrefHeight(200);

        VBox vbox = new VBox(contentTextArea);
        vbox.setPadding(new Insets(10));

        return new TitledPane(title, vbox);
    }

    private static String getIntroduction() {
        return "欢迎使用本网站！在这里您可以找到关于如何使用本网站的基本信息。\n\n" +
                "我们的网站旨在提供一个友好的用户体验，并帮助您轻松地找到所需的信息。";
    }

    private static String getUsageInstructions() {
        return "使用说明：\n\n" +
                "1. 导航：使用顶部导航栏可以访问网站的主要部分。\n" +
                "2. 搜索：使用搜索栏快速找到特定信息。\n" +
                "3. 帐户管理：登录后可以访问和管理您的个人帐户信息。\n" +
                "4. 帮助：在任何页面上点击帮助按钮以获取相关帮助信息。";
    }

    private static String getFAQ() {
        return "常见问题：\n\n" +
                "1. 如何登录账号？\n" +
                "答：点击右上角的“登录界面”按钮，填写必要的信息后提交即可。\n\n" +
                "2. 想要修改个人信息怎么办？\n" +
                "答：点击右上角的“个人信息”按钮，点击修改后即可修改个人信息，最后记得保存。\n\n" +
                "3. 如何联系客户支持？\n" +
                "答：访问“联系我们”页面以获取联系信息。";
    }

    private static String getContactInfo() {
        return "联系我们：\n\n" +
                "如果您有任何疑问或需要进一步的信息，请随时通过以下方式与我们联系：\n" +
                "地址：北京市海淀区学院路37号，北京理工大学网络攻防对抗技术研究所\n" +
                "电话：+86-10-12345678\n" +
                "传真：+86-10-87654321\n" +
                "电子邮件：info@networksecurity.com\n\n" +
                "办公时间：周一至周五，上午9:00 - 下午6:00\n" +
                "研究所网址：www.networksecurity.com\n\n" +
                "感谢您对网络攻防对抗技术研究所的关注和支持！";
    }
}